Learn
How to Use
Flash with PHP and mySQL
written by
ptolemy
This is page two of the tutorial on learning
how to use Flash with PHP and mySQL. If you stumbled upon
this page without reading page one,
click
here to visit page one of this tutorial.
Setting up your MySQL
Table
Ok so our script doesn't do much right
now. All it does is pass our SWF a simple variable whose
value is hard coded in the script. This is a tutorial on
getting data dynamically from a database so, let's move on
to first setting up a table that will contain our
information.
First of all, we must think about how our database will be
organized. Text files are easy because they have a name and
content, but how do we go about emulating that with a
database? Simple. Take a look at the table below and you'll
understand what I mean.
where filename is a varchar
and content is a blob. This is the nice part.
See how this is like a regular file system? It makes life
simple as you can now execute queries like:
SELECT
content FROM file WHERE filename='myfile';
Nice eh? Ok but I'm getting ahead of
myself here. Before we move on to some more PHP, insert some
dummy values in your database. So for example:
Once you have successfully
entered some data, it's time to move on to the last step.
Bringing Everything
Together
Disregard the earlier PHP script
we wrote and start off a fresh notepad session. The new
script we will be writing will ultimately do three things.
- Connect to our database
- Create an array of data from the database
- Print the array to the screen so that our SWF can read
the data
The first thing we need to do is make our script
flexible. What I mean is, we want it to be able to read any
file we tell it to, without having to re-write parts of the
script. The easiest way to do this is by thinking of our new
script as a function of sorts. That is, we will have the
ability to send the file an argument (hence my analogy to a
function) that will point to the file we want it to read.
Sound difficult? Well it's not, in fact, it's the easiest
part of this tutorial. To send an argument to a file all one
needs to do is append a ? to the end of the
URL, followed by the variable name, an equal sign and then
the value we want the variable to contain*.
For example:
http://localhost/test.php?x=my+value
|
NOTE: |
This will only work if you have
register_globals=on in your php.ini file. My
server has them enabled but for some people it
is a security issue. If your server does not
have register_globals on, it is still possible
to extract posted data using $HTTP_POST_VARS.
|
|
|
For simplicity's sake, let's name our new script
read.php. Here's what my script looks like:
You should note that the nature of the
script assumes that the variable name of the dynamic text
field is named content. Now, this can be a problem if
you have several text fields in a single movie clip (i.e.
you would have to name each field the same name, and that
wouldn't do you much good). The problem can be resolved
though by adding a new variable to our script and by sending
a second value via our URL. I'm not going to go through how
this because:
-
It's fairly simple to do and
-
I have methods to my madness
.
Now back to Flash. Open the FLA we created
earlier (the one with the lone movie clip with a dynamic
text field in it), and modify the code attached to the movie
clip so that it looks like this:
Now publish the FLA and cross your fingers
.
If all has gone well, you should see your text field filled
with the text found in the content column of your database,
where the file name is equal to testfile. If nothing
shows up, there are a couple things I would recommend
checking before you flame me for this tutorial not working.
- Make sure Apache (or other) is running if you're doing
this locally (ok I had to say this as it has happened to
me in the past.
- Make sure the colour of the text in the text field is
not the same as the background
- Make absolute sure that you gave the text field a
variable name not an instance name
If you still have problems and you don't know why, don't
hesitate to reply to me directly or
post a message.
I admit it takes quite an effort to do
something as simple as get information from a database into
a Flash movie. I hope that you can understand the power of
the database though, and how it can make your projects
easier and more enjoyable to maintain. Maybe sometime in the
future we could convince Macromedia to include functions
that would interface directly with a database. Until that
happens though, we're gonna have to keep on scripting.
Yours,
ptolemy
[email protected]
|